package models

import (
	"gorm.io/gorm"
	"time"
)

// SysRoles 系统角色表结构体
type SysRoles struct {
	ID          uint64    `gorm:"column:id;primary_key;auto_increment" json:"id" form:"id"`
	Name        string    `gorm:"column:name;type:varchar(50);not_null" json:"name" form:"name"`
	Description string    `gorm:"column:description;type:text" json:"description" form:"description"`
	CreatedAt   time.Time `gorm:"column:created_at;default:CURRENT_TIMESTAMP" json:"created_at" form:"created_at"`
	UpdatedAt   time.Time `gorm:"column:updated_at;default:CURRENT_TIMESTAMP;update_default:CURRENT_TIMESTAMP" json:"updated_at" form:"updated_at"`
}

// TableName 指定结构体对应的数据库表名
func (SysRoles) TableName() string {
	return "sys_roles"
}

// GetSysRoleBySysRoleID
//
// 描述信息：根据系统角色ID获取系统角色的全部信息
//
// Param：
//
//	db ：mysql链接
//	sysRoleID ：系统角色ID
//
// Return：
//
//	SysRole ：查询到的系统角色信息
//	error ：错误信息
func GetSysRoleBySysRoleID(db *gorm.DB, sysRoleID uint64) (SysRoles, error) {
	var sysRole SysRoles
	result := db.Model(&SysRoles{}).Where("id = ?", sysRoleID).First(&sysRole)
	if result.Error != nil {
		return sysRole, result.Error
	}
	return sysRole, nil
}
